package com.sayd.sjxc.http;


import com.sayd.sjxc.bean.CloudIDBean;
import com.sayd.sjxc.bean.M_Base;
import com.sayd.sjxc.bean.PaySucBean;
import com.sayd.sjxc.bean.RoleBean;
import com.sayd.sjxc.bean.TransferPayInfoBean;
import com.sayd.sjxc.bean.UnionpayBean;
import com.sayd.sjxc.bean.UserInfoBean;
import com.sayd.sjxc.bean.VersionBean;

import java.util.List;
import java.util.Map;

import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;
import rx.Observable;

/**
 * Created by dalong on 2016/3/16.
 */
public interface VIPService {


    /**
     * 显示媒体视频
     * */
//    @GET(ConstantValues.Video)
//    Observable<M_Base<List<MediaVideoBean>>>  getVideoList(@QueryMap Map<String, String> map);


    /**
     * 登录
     * */
//    @FormUrlEncoded
//    @POST(ConstantValues.LOGIN)
//    Observable<M_Base<UserInfoBean>>  login(@FieldMap Map<String, String> map);


    /**
     * 获取角色
     * */
    @GET(ConstantValues.SERVICEUSER)
    Observable<M_Base<List<RoleBean>>> getRoles(@QueryMap Map<String, String> map);

    /**
     * 获取随机云码
     * */
    @GET(ConstantValues.CLOUDID)
    Observable<M_Base<CloudIDBean>> getCloudId();



    /**
     * 获取版本信息
     * */
    @GET(ConstantValues.Version)
    Observable<M_Base<VersionBean>> getVersionInfo();

    /**
     * 获取汇款信息
     * */
    @GET(ConstantValues.BankCard)
    Observable<M_Base<List<TransferPayInfoBean>>> getBankCardInfo();

    /**
     * 获取微联通余额
     * */
    @GET(ConstantValues.WLT_BALANCE)
    Observable<M_Base<Double>> getWltBalance(@QueryMap Map<String, String> map);

    /**
     * 银联支付
     * */
    @FormUrlEncoded
    @POST(ConstantValues.UNIPAY)
    Observable<M_Base<UnionpayBean>> upPay(@FieldMap Map<String, String> map);

    /**
     *微联通支付
     * */
    @FormUrlEncoded
    @POST(ConstantValues.WLT_APY)
    Observable<M_Base> wltPay(@FieldMap Map<String, String> map);


    /**
     *微联通服务订单支付
     * */
    @FormUrlEncoded
    @POST(ConstantValues.WLT_SERVICEAPY)
    Observable<M_Base> wltServicePay(@FieldMap Map<String, String> map);

    /**
     * 发送汇款短信
     * */
    @GET(ConstantValues.SEND_SMS)
    Observable<M_Base> sendSMS(@QueryMap Map<String, String> map);

    /**
     * 登录
     * */
    @FormUrlEncoded
    @POST(ConstantValues.LOGIN)
    Observable<M_Base<UserInfoBean>>  login(@FieldMap Map<String, String> map);

    /**
     * 获取注册成功信息
     * */
    @GET(ConstantValues.GETSUCINFO)
    Observable<M_Base<PaySucBean>> getSucInfo(@QueryMap Map<String, String> map);
    /**
     * 云码提交订单
     * */
    @FormUrlEncoded
    @POST(ConstantValues.CLOUD_Confirm)
    Observable<M_Base<String>> getCloudConfirm(@FieldMap Map<String, String> map);

    /**
     * 无云码提交订单
     * */
    @FormUrlEncoded
    @POST(ConstantValues.NO_CLOUD_Confirm)
    Observable<M_Base<String>> getNoCloudConfirm(@FieldMap Map<String, String> map);

    /**
     * 下一步验证有云码
     * */
    @FormUrlEncoded
    @POST(ConstantValues.HaveCloudIDInfoValid)
    Observable<M_Base<String>>  haveCloudNextChedck(@FieldMap Map<String, String> map);

    /**
     * 下一步验证无云码
     * */
    @FormUrlEncoded
    @POST(ConstantValues.NotCloudIDInfoValid)
    Observable<M_Base<String>> NoCloudNextChedck(@FieldMap Map<String, String> map);


    /**
     * 删除订单
     * */
    @GET(ConstantValues.DELETE_ORDR)
    Observable<M_Base> deleteOrder(@QueryMap Map<String, String> map);


}

